// Generated from D:/tution/Interpreter/cmm/src\Cmm.g4 by ANTLR 4.7
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link CmmParser}.
 */
public interface CmmListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link CmmParser#program}.
	 * @param ctx the parse tree
	 */
	void enterProgram(CmmParser.ProgramContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#program}.
	 * @param ctx the parse tree
	 */
	void exitProgram(CmmParser.ProgramContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#stmt}.
	 * @param ctx the parse tree
	 */
	void enterStmt(CmmParser.StmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#stmt}.
	 * @param ctx the parse tree
	 */
	void exitStmt(CmmParser.StmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#declStmt}.
	 * @param ctx the parse tree
	 */
	void enterDeclStmt(CmmParser.DeclStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#declStmt}.
	 * @param ctx the parse tree
	 */
	void exitDeclStmt(CmmParser.DeclStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void enterDeAs(CmmParser.DeAsContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#deAs}.
	 * @param ctx the parse tree
	 */
	void exitDeAs(CmmParser.DeAsContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#ifStmt}.
	 * @param ctx the parse tree
	 */
	void enterIfStmt(CmmParser.IfStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#ifStmt}.
	 * @param ctx the parse tree
	 */
	void exitIfStmt(CmmParser.IfStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#whileStmt}.
	 * @param ctx the parse tree
	 */
	void enterWhileStmt(CmmParser.WhileStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#whileStmt}.
	 * @param ctx the parse tree
	 */
	void exitWhileStmt(CmmParser.WhileStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#assignStmt}.
	 * @param ctx the parse tree
	 */
	void enterAssignStmt(CmmParser.AssignStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#assignStmt}.
	 * @param ctx the parse tree
	 */
	void exitAssignStmt(CmmParser.AssignStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#writeStmt}.
	 * @param ctx the parse tree
	 */
	void enterWriteStmt(CmmParser.WriteStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#writeStmt}.
	 * @param ctx the parse tree
	 */
	void exitWriteStmt(CmmParser.WriteStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#stmtBlock}.
	 * @param ctx the parse tree
	 */
	void enterStmtBlock(CmmParser.StmtBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#stmtBlock}.
	 * @param ctx the parse tree
	 */
	void exitStmtBlock(CmmParser.StmtBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#forStmt}.
	 * @param ctx the parse tree
	 */
	void enterForStmt(CmmParser.ForStmtContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#forStmt}.
	 * @param ctx the parse tree
	 */
	void exitForStmt(CmmParser.ForStmtContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void enterType(CmmParser.TypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#type}.
	 * @param ctx the parse tree
	 */
	void exitType(CmmParser.TypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#variable}.
	 * @param ctx the parse tree
	 */
	void enterVariable(CmmParser.VariableContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#variable}.
	 * @param ctx the parse tree
	 */
	void exitVariable(CmmParser.VariableContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#constant}.
	 * @param ctx the parse tree
	 */
	void enterConstant(CmmParser.ConstantContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#constant}.
	 * @param ctx the parse tree
	 */
	void exitConstant(CmmParser.ConstantContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void enterCompare(CmmParser.CompareContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#compare}.
	 * @param ctx the parse tree
	 */
	void exitCompare(CmmParser.CompareContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void enterExpr(CmmParser.ExprContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#expr}.
	 * @param ctx the parse tree
	 */
	void exitExpr(CmmParser.ExprContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#mulExpr}.
	 * @param ctx the parse tree
	 */
	void enterMulExpr(CmmParser.MulExprContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#mulExpr}.
	 * @param ctx the parse tree
	 */
	void exitMulExpr(CmmParser.MulExprContext ctx);
	/**
	 * Enter a parse tree produced by {@link CmmParser#factor}.
	 * @param ctx the parse tree
	 */
	void enterFactor(CmmParser.FactorContext ctx);
	/**
	 * Exit a parse tree produced by {@link CmmParser#factor}.
	 * @param ctx the parse tree
	 */
	void exitFactor(CmmParser.FactorContext ctx);
}